//
//  JOJOWangSDK.h
//  JOJOWangSDK
//
//  Created by Noodles Wang on 10/11/13.
//  Copyright (c) 2013 Noodles Wang. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

#pragma mark - JOJOWangSDK class
/**
 *  JOJOWang SDK 核心类，向开发者提供JOJOWang可用的类方法和协议方法
 */
@interface JOJOWangSDK : NSObject
/**
 *  应用的ID
 */
@property (nonatomic, strong) NSString *appID;
/**
 *  开发者自定义的用户ID，用于追踪用户行为。
 */
@property (nonatomic, strong) NSString *userID;
/*!
 *  @brief  用于区别不同渠道来的激活，cpc、积分墙、web版
 */
@property (nonatomic, strong) NSString *step;
/**
 *  获得JOJOWangSDK实例，单例方法
 *
 */
+ (id)sharedJOJOWangSDK;

/**
 *  通知服务器app开始运行，一般加载app启动方法中。
 *
 *  @param appID  应用ID
 *  @param userID 用户ID
 */
+ (void)requestJOJOWangSession:(NSString*)appID withUserID:(NSString*)userID;

#pragma mark - methods for web
/*!
 *  @brief  基础参数
 *
 *  @return 基础参数dic
 */
+ (NSDictionary *)web_basicDiamondsArguments;
/**
 *  用户点击广告通知 + 广告同步排重。
 *
 *  @param arguments 广告参数中，下载链接（href_params）的所有参数（中间保持&连接），写在arguments中就可，sdk需要用这些参数信息验证广告的激活。
 
 *  @param resultBlock 由于一些广告需要同步排重，机制是当用户点击广告后，将用户信息跟CP服务器通信，确定用户没有下载过此APP。如果resultBlock返回的值为0，表示用户没有下载过，允许用户下载；如果是1，开发者需要通知用户“您已经下载过此APP，请勿重复下载”。此方法等待的时间，不会超过3秒。
 */
+ (void)web_downloadApp:(NSString *)arguments result:(void(^)(BOOL isInstalled))resultBlock;
/**
 *  开墙方法
 *
 *  @param page          分页信息，可固定写1
 *  @param diamondsBlock 开墙结果回调方法
 */
+ (void)requestJOJOWangDiamondData:(NSUInteger)page result:(void (^)(NSArray *diamonds, NSError *error))diamondsBlock;

@end
